#define _CRT_SECURE_NO_WARNINGS 1

#include "SingleList.h"

void SLTest1()
{
	SLN* SL = NULL;
	SLPushFront(&SL, 1);
	SLPushFront(&SL, 2);
	SLPushFront(&SL, 3);
	SLPushFront(&SL, 4);
	SLPushFront(&SL, 5);

	SLPrint(SL);

	SLDestroy(&SL);
	// fine
}

void SLTest2()
{
	SLN* SL = NULL;
	SLPushBack(&SL, 1);
	SLPrint(SL);
	SLPushFront(&SL, 2);
	SLPushFront(&SL, 3);
	SLPushFront(&SL, 4);
	SLPushFront(&SL, 5);
	SLPushBack(&SL, 7);


	SLPrint(SL);

	SLDestroy(&SL);
	// fine
}

void SLTest3()
{
	SLN* SL = NULL;
	SLPushBack(&SL, 1);
	SLPrint(SL);
	SLPushFront(&SL, 2);
	SLPopFront(&SL);
	SLPushFront(&SL, 3);
	SLPushFront(&SL, 4);
	SLPushFront(&SL, 5);
	SLPushBack(&SL, 7);
	SLPopFront(&SL);
	SLPopFront(&SL);
	SLPrint(SL);

	SLDestroy(&SL);
	// fine
}

void SLTest4()
{
	SLN* SL = NULL;
	SLPushBack(&SL, 1);
	SLPushFront(&SL, 3);
	SLPushFront(&SL, 4);
	SLPushFront(&SL, 5);
	SLPushBack(&SL, 7);
	SLPopFront(&SL);
	SLPopFront(&SL);
	SLPrint(SL);
	SLPopBack(&SL);
	SLPrint(SL);


	SLDestroy(&SL);
	// fine
}

void SLTest5()
{
	SLN* SL = NULL;
	SLPushBack(&SL, 1);
	SLPushFront(&SL, 3);
	SLPushFront(&SL, 4);
	SLPushFront(&SL, 5);
	SLPushBack(&SL, 7);
	SLPopFront(&SL);
	SLPopFront(&SL);
	SLPrint(SL);
	SLPopBack(&SL);
	SLPrint(SL);


	SLDestroy(&SL);
	// fine
}

void SLTest6()
{
	SLN* SL = NULL;
	SLPushBack(&SL, 12);
	SLPushBack(&SL, 77);
	SLN* pos = SLFind(SL, 12);
	SLInsert(&SL, pos, 4);
	SLInsert(&SL, pos, 1);
	SLInsert(&SL, pos, 2);
	SLInsert(&SL, pos, 3);

	SLPrint(SL);


	SLDestroy(&SL);
	// fine
}

int main()
{
	SLTest6();

	return 0;
}